﻿using System.Text.Json.Serialization;

namespace DoNet.Bpmn.Core.Vo
{
    public class BpmnTemplateVo
    {
        public long Id { get; set; }

        [JsonPropertyName("confId")]
        public long ConfId { get; set; }

        [JsonPropertyName("nodeId")]
        public long NodeId { get; set; }

        public int Event { get; set; }

        [JsonPropertyName("eventValue")]
        public string EventValue { get; set; } = string.Empty;

        [JsonPropertyName("informs")]
        public string Informs { get; set; } = string.Empty;

        [JsonPropertyName("informIdList")]
        public List<string> InformIdList { get; set; } = new List<string>();

        [JsonPropertyName("informList")]
        public List<BaseIdTranStruVo> InformList { get; set; } = new List<BaseIdTranStruVo>();

        [JsonPropertyName("emps")]
        public string Emps { get; set; } = string.Empty;

        [JsonPropertyName("empIdList")]
        public List<string> EmpIdList { get; set; } = new List<string>();

        [JsonPropertyName("empList")]
        public List<BaseIdTranStruVo> EmpList { get; set; } = new List<BaseIdTranStruVo>();

        [JsonPropertyName("roles")]
        public string Roles { get; set; } = string.Empty;

        [JsonPropertyName("roleIdList")]
        public List<string> RoleIdList { get; set; } = new List<string>();

        [JsonPropertyName("roleList")]
        public List<BaseIdTranStruVo> RoleList { get; set; } = new List<BaseIdTranStruVo>();

        [JsonPropertyName("funcs")]
        public string Funcs { get; set; } = string.Empty;

        [JsonPropertyName("funcIdList")]
        public List<string> FuncIdList { get; set; } = new List<string>();

        [JsonPropertyName("funcList")]
        public List<BaseIdTranStruVo> FuncList { get; set; } = new List<BaseIdTranStruVo>();

        [JsonPropertyName("templateId")]
        public long TemplateId { get; set; }

        [JsonPropertyName("templateName")]
        public string TemplateName { get; set; } = string.Empty;

        [JsonPropertyName("messageSendTypeList")]
        public List<BaseNumIdStruVo> MessageSendTypeList { get; set; } = new List<BaseNumIdStruVo>();
        [JsonPropertyName("formCode")]
        public string FormCode { get; set; } = string.Empty;
        public int IsDel { get; set; }

        [JsonPropertyName("createTime")]
        public DateTime? CreateTime { get; set; }

        [JsonPropertyName("createUser")]
        public string CreateUser { get; set; } = string.Empty;

        [JsonPropertyName("updateTime")]
        public DateTime? UpdateTime { get; set; }

        [JsonPropertyName("updateUser")]
        public string UpdateUser { get; set; } = string.Empty;

        // 默认构造函数
        public BpmnTemplateVo() { }
    }
}
